#include <iostream>
#include <cmath>
#include<bits/stdc++.h>
using namespace std;

class Triangle {
public:
    // 构造函数
    Triangle(double side1, double side2, double side3) {
        this->side1 = side1;
        this->side2 = side2;
        this->side3 = side3;
    }
    
    // 修改三角形边长
    void setSides(double side1, double side2, double side3) {
        this->side1 = side1;
        this->side2 = side2;
        this->side3 = side3;
    }
    
    // 计算三角形周长
    double getPerimeter() {
        return side1 + side2 + side3;
    }
    
    // 计算三角形面积
    double getArea() {
        double p = getPerimeter() / 2; // 半周长
        return sqrt(p * (p - side1) * (p - side2) * (p - side3));
    }
    
    // 判断三角形类型
    string getType() {
        double sideArray[3] = {side1, side2, side3};
        sort(sideArray, sideArray+3); // 对边长从小到大排序
        
        double a = sideArray[0]; // 最短边
        double b = sideArray[1]; // 次长边
        double c = sideArray[2]; // 最长边
        
        if (a * a + b * b == c * c) // 直角三角形
            return "直角三角形";
        else if (a * a + b * b < c * c) // 钝角三角形
            return "钝角三角形";
        else // 锐角三角形
            return "锐角三角形";
    }
    
private:
    double side1;
    double side2;
    double side3;
};

int main() {
	int a,b,c;
    // 初始化三角形
    Triangle tri(3, 4, 5);
    
    // 输出周长
    cout << "周长: " << tri.getPerimeter() << endl;
    
    // 输出面积
    cout << "面积: " << tri.getArea() << endl;
    
    // 输出类型
    cout << "形状: " << tri.getType() << endl;
    
    // 修改边长
    cout<<"请输入新的三角形三边"<<'\n';
    cin>>a>>b>>c;
    
    tri.setSides(a, b, c);
    
    // 再次输出周长、面积和类型
    cout << "周长: " << tri.getPerimeter() << endl;
    cout << "面积: " << tri.getArea() << endl;
    cout << "形状: " << tri.getType() << endl;
    
    return 0;
}